package com.lh.jianzhioffer.专项练习.位运算;

import java.util.HashMap;
import java.util.Map;

/**
 * @author: linghao
 * @since: 2023/2/15
 *
 * 给你一个整数数组 nums ，除某个元素仅出现 一次 外，其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素
 */
public class 只出现一次的数字004 {

    public static void main(String[] args) {
        int[] a = {2,2,3,2};
        System.out.println(singleNumber(a));
    }

    public static int singleNumber(int[] nums) {
        Map<Integer,Integer> cacheCount = new HashMap<>();
        for(int i=0;i<nums.length;i++){
            if(cacheCount.containsKey(nums[i])){
                cacheCount.put(nums[i],3);
            }else {
                cacheCount.put(nums[i],1);
            }
        }

        for(Map.Entry<Integer,Integer> amap : cacheCount.entrySet()){
            if(amap.getValue() == 1){
                return amap.getKey();
            }
        }
        return 0;
    }

}
